package algorithm.middle;


/**
 * @author 江岸
 * @version V1.0
 * @ClassName: RemoveDuplicates80
 * @description: 给你一个有序数组 nums ，请你 原地 删除重复出现的元素，使每个元素 最多出现两次 ，返回删除后数组的新长度。
 * <p>
 * 不要使用额外的数组空间，你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。
 * <p>
 * 来源：力扣（LeetCode）
 * 链接：https://leetcode-cn.com/problems/remove-duplicates-from-sorted-array-ii
 * 著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。
 * @date 2021/4/615:58
 * @since V1.0
 */
public class RemoveDuplicates80 {


    public int removeDuplicates(int[] nums) {
        int left=1;
        int right=1;
        int count = 0;
        while (right<nums.length){
            if (nums[right]!=nums[right-1]){
                nums[left] = nums[right];
                right++;
                left++;
                count=0;
            }else{
                count = count+1;
                if (count==1){
                    nums[left] = nums[right];
                    right++;
                    left++;
                }else {
                    right++;
                }
            }
        }
        return left;
    }


}
